package javase2.day03.demo01;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/*
java.util.List接口  extends Collection接口
List接口的特点：
        1有序的集合，存储元素和取出元素顺序一致
        2有索引
        3允许储存重复的元素
List接口的常用方法：
        public void add(int index, E element): 将指定的元素，添加到该集合中的指定位置上。
        public E get(int index):返回集合中指定位置的元素。
        public E remove(int index): 移除列表中指定位置的元素, 返回的是被移除的元素。
        public E set(int index, E element):用指定元素替换集合中指定位置的元素,返回值的更新前的元素。
 */
public class  Demo01List {
    public static void main(String[] args) {
        //创建一个List集合对象，多态
        List<String> list=new ArrayList<>();
        list.add("ljh");
        list.add("hi");
        list.add("you");
        list.add("i");
        System.out.println(list);//[ljh, hi, you, i]重写了toString方法

        list.add(3,"is");
        System.out.println(list);//[ljh, hi, you, is, i]

        String s = list.get(1);
        System.out.println(s);//hi

        String s1 = list.remove(2);
        System.out.println(s1);//you

        String s3 = list.set(0, "lbh");
        System.out.println(s3);//ljh
        System.out.println(list);//[lbh, hi, is, i]


        System.out.println("--------------");
        //List集合遍历的三种方式
        for (int index=0;index<list.size();index++){
            String s2 = list.get(index);
            System.out.println(s2);
        }
        System.out.println("--------------");
        //使用迭代器
        Iterator it =list.iterator();
        while (it.hasNext()){
            Object obj = it.next();
            System.out.println(obj);
        }
        System.out.println("--------------");
        //增强for循环
        for(String i : list){
            System.out.println(i);
        }
        System.out.println("--------------");
    }
}

